In many online computer games, there is a virtual world or some other imagined playing space where a player of the game controls one or more player characters (herein “characters,” “player characters,” or “PCs”). Player characters can be considered in-game representations of the controlling player. As used herein, the terms player, user, entity, neighbor, friend, and the like may refer to the in-game player character controlled by that player, user, entity, or friend, unless context suggests otherwise. A game display can display a representation of the player character. A game engine accepts inputs from the player, determines player character actions, decides outcomes of events, and presents the player with a game display illuminating game play. In some games, there are multiple players, wherein each player controls one or more player characters.
Many online computer games are operated on an online social network. Such a network allows both users and other parties to interact with the computer games directly, whether to play the games or to retrieve game- or user-related information. Internet users may maintain one or more accounts with various service providers, including, for example, online game networking systems and online social networking systems. Online systems can typically be accessed using browser clients (e.g., Firefox, Chrome, Internet Explorer).
A client-side computing device or computer system may present the online game to the user by executing coded game logic or scripts for the online game. For example, a player may visit a virtual city of the online game, and may perform an in-game action by initiating a battle between the player's player character and another character in the virtual city. To perform and animate the battle, the player's client computing device may execute game view logic (e.g., JavaScript or ActionScript) to generate a visual representation of the in-game action, while execution of the battle or in-game action by game logic on the client computing device may make changes to a game state associated with the player based on the in-game action.
Such client-side execution of in-game actions allows near real-time interaction between the player and the client computing device, promoting immersive gameplay action. When multiple players, however, perform actions with respect to a common environment, environment state information on respective client computing devices may be out of synchronization with each other or with authoritative game state information on a master database, which can occasionally result in conflicts in environment state information and/or player state information.